home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tex / macros / source / packages / epic / picman.tex / node13_mn.html < prev    next >
Text File  |  1995-03-15  |  10KB  |  210 lines

  1.  
  2. <H1><A ID="SECTION00040000000000000000">
  3. General Comments</A>
  4. </H1>
  5.  
  6. <P>
  7. A few remarks about efficiency and quirks:
  8.  
  9. <UL>
  10. <LI>In most of the above commands, simply typing a <#210#><TT>[]</TT><#210#> for optional
  11. arguments with <#211#><I>nothing</I><#211#> as the value will either cause an error or will
  12. be interpreted as a null value; hence a <#212#><TT>[]</TT><#212#> should not be typed if an
  13. optional argument is not meant to be specified.
  14.  
  15. <P>
  16. </LI>
  17. <LI>If too many ``dots'' are to be plotted in one picture, it is suggested
  18. that a character other than the default be used --- about 40--50<tex2html_percent_mark> more dots
  19. can be plotted in a picture using a period (.) or a <tex2html_verb_mark>95<tex2html_verb_mark>
  20. (•) in various sizes, rather than the default <tex2html_verb_mark>96<tex2html_verb_mark>,
  21. although the latter seems to have a better visual appearance. The
  22. use a <tex2html_verb_mark>97<tex2html_verb_mark> also enables one to have a better control over the
  23. thickness of dots and lines.
  24.  
  25. <P>
  26. A note on efficiency: when specifying a font or a fontsize for a character
  27. it is more efficient to say:
  28. <BR><tex2html_verb_mark>98<tex2html_verb_mark>,   rather than
  29. <BR><tex2html_verb_mark>99<tex2html_verb_mark>.
  30. <BR>In the latter case, <tex2html_verb_mark>100<tex2html_verb_mark> macro gets invoked for <#213#><I>each</I><#213#> instance
  31. of the dotcharacter <tex2html_verb_mark>101<tex2html_verb_mark> as the dottedline is plotted.
  32.  
  33. <P>
  34. </LI>
  35. <LI>If it is not very important as to how accurately spaced a dashed line
  36. appears, then it is suggested that <tex2html_verb_mark>102<tex2html_verb_mark> command with a -ve
  37. stretch be used instead of <tex2html_verb_mark>103<tex2html_verb_mark>, since the former is much more
  38. cpu- and memory-efficient.
  39.  
  40. <P>
  41. </LI>
  42. <LI><tex2html_verb_mark>104<tex2html_verb_mark> and <tex2html_verb_mark>105<tex2html_verb_mark> come out much too thin with
  43. <tex2html_verb_mark>106<tex2html_verb_mark>. Moreover, the thicker the <tex2html_verb_mark>107<tex2html_verb_mark>, fewer
  44. ``dots'' are required to construct dashes resulting in lesser memory and cpu
  45. usage. Thus, it is recommended that they be plotted with <tex2html_verb_mark>108<tex2html_verb_mark>
  46. in effect, or with a linethickness of about 1--2pt.
  47.  
  48. <P>
  49. </LI>
  50. <LI>In the case of <tex2html_verb_mark>109<tex2html_verb_mark>, any explicit linethickness declarations
  51. (i.e. using <tex2html_verb_mark>110<tex2html_verb_mark> command) are ignored. The only applicable
  52. declarations are <tex2html_verb_mark>111<tex2html_verb_mark> and <tex2html_verb_mark>112<tex2html_verb_mark> since line-segment
  53. fonts are available in only two thicknesses.
  54. </LI>
  55. </UL>
  56.  
  57. <P>
  58. Above commands are available in the picture environment only since they use
  59. many of the L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X's predefined picture commands. Extensive use of some of
  60. the internal macros and variables of L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X has been made for efficiency
  61. sake, even though that makes these macros vulnerable to future revisions of
  62. L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X.
  63.  
  64. <P>
  65. The dottedline macro gets complicated because T<SMALL>E</SMALL>X does not have any builtin
  66. facility for floating point calculations or for calculating square-roots or
  67. trigonometric functions. The inter-dot-gap in a dottedline has to be treated
  68. as the actual distance between two dots along the ``hypotenuse'' and not its
  69. projected distance along x-axis or y-axis, since the latter interpretation
  70. would result in a different <#215#><I>real</I><#215#> inter-dot-gap for different slopes;
  71. it would be incorrect if we were joining points on a graph. The dootedline
  72. macro treats the inter-dot-gap as the actual distance between two dots and
  73. draws the various segments of the ``curve'' with this distance fixed. The
  74. macro accomplishes this by estimating the actual length of the line and the
  75. number of segments of the specified distance that will fit between the two
  76. end-points; a macro, namely, <tex2html_verb_mark>113<tex2html_verb_mark> calculates this
  77. square-root. Some algebraic relations are used in estimating this square-root
  78. and are described in appendix A.
  79.  
  80. <P>
  81. Beware, if far too many dots are put in one picture, L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X will run out of
  82. memory (box full), so be kind to it. For instance, by reducing the
  83. inter-dot-gap to about 0.3mm in the case of a <tex2html_verb_mark>114<tex2html_verb_mark>, one can get
  84. essentially a solid line, but that would mean a LOT of dots and it may run
  85. out of memory.
  86.  
  87. <P>
  88. If many lines using above-mentioned macros are drawn, then a
  89. <tex2html_verb_mark>115<tex2html_verb_mark> ought to be put at judicious places in the document so as
  90. to tell L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X not to keep those figures floating -- L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X sometimes
  91. keeps entire figures in memory while trying to figure out how and where to
  92. lay them and it can frequently run out of memory. A <tex2html_verb_mark>116<tex2html_verb_mark> may
  93. prevent running out of memory and may reduce execution times.
  94. In case of such a
  95. memory-full error message, a <tex2html_verb_mark>117<tex2html_verb_mark> in the region where the error
  96. occurred should be attempted first and if that does not help then the number
  97. of ``dots'' in the picture will have to be reduced.
  98.  
  99. <P>
  100. A word about <tex2html_verb_mark>118<tex2html_verb_mark> is in order. L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X's <tex2html_verb_mark>119<tex2html_verb_mark> command
  101. takes an ordered pair of integers to specify the slope of the line where the
  102. numbers are between -6 and 6 such that the least common divisor is 1. For
  103. the <tex2html_verb_mark>120<tex2html_verb_mark> command, the given arbitrary slope has to be mapped to
  104. the pair of integers representing the <#216#><I>closest</I><#216#> available slope.
  105. Another macro, <tex2html_verb_mark>121<tex2html_verb_mark> is used to accomplish this task. The macro
  106. <tex2html_verb_mark>122<tex2html_verb_mark> takes two arguments, the base and the height of the
  107. triangle whose hypotenuse represents the line to be drawn and returns the
  108. ordered pair of integers representing the closest slope; using a line segment
  109. of that slope, a jagged line between the two specified end-points is then
  110. constructed. More details can be found in the macro file <#217#><TT>epic.sty</TT><#217#>.
  111.  
  112. <P>
  113. As noted earlier, the command <tex2html_verb_mark>123<tex2html_verb_mark> behaves identically as <tex2html_verb_mark>124<tex2html_verb_mark>
  114. when not in any of the join environments. The author considered obliterating
  115. the <tex2html_verb_mark>125<tex2html_verb_mark> command too radical a step. Also, there should have been a
  116. command <tex2html_verb_mark>126<tex2html_verb_mark> corresponding to the <tex2html_verb_mark>127<tex2html_verb_mark> command (like the
  117. <tex2html_verb_mark>128<tex2html_verb_mark> command) but that was considered unnecessary since typically
  118. the number of coordinates plotted in a join environment would be an order
  119. less than what might be the case with <tex2html_verb_mark>129<tex2html_verb_mark> and can be easily
  120. typed explicitly in the document using <tex2html_verb_mark>130<tex2html_verb_mark> commands.
  121. However, if it is desired to have all the <tex2html_verb_mark>131<tex2html_verb_mark> commands treated as
  122. though they were <tex2html_verb_mark>132<tex2html_verb_mark>, the following declaration may be used:
  123. <BR> <tex2html_verb_mark>133<tex2html_verb_mark> 
  124. <BR>Above declaration will make all
  125. the <tex2html_verb_mark>134<tex2html_verb_mark> commands be treated as <tex2html_verb_mark>135<tex2html_verb_mark>; in particular,
  126. <tex2html_verb_mark>136<tex2html_verb_mark> command would then behave as though it were a
  127. <tex2html_verb_mark>137<tex2html_verb_mark> when in any of the join environments. However, it is
  128. suggested that such ``tricks'' be used with care.
  129.  
  130. <P>
  131. Finally, commands to plot vectors of arbitrary slopes have not been
  132. implemented. One way to plot them is to plot a line, and subsequently plot a
  133. <tex2html_verb_mark>138<tex2html_verb_mark> of appropriate slopes and length zero at the required place.
  134.  
  135. <P>
  136. Following pages contain some examples. The test-sample picture for
  137. <tex2html_verb_mark>139<tex2html_verb_mark> command (Figure~2) is also about the maximum amount of
  138. objects that one can put in one picture. Older versions of T<SMALL>E</SMALL>X and L<SUP><SMALL>A</SMALL></SUP>T<SMALL>E</SMALL>X may not be able to print pictures of this size.
  139.  
  140. <P>
  141.  
  142.  
  143. <DIV class="CENTER"><A ID="229"><tex2html_anchor_mark></A>
  144. <TABLE>
  145. <CAPTION class="BOTTOM"><STRONG><#1711#>Figure<#1711#>:</STRONG>
  146. <#1712#> An Example of Various Line Drawing Commands<#1712#></CAPTION>
  147. <TR><TD><tex2html_image_mark>#figure219#</TD></TR>
  148. </TABLE>
  149. </DIV>
  150.  
  151.  
  152. <P>
  153. <FONT SIZE="-1"><#232#>picman-fig1<#232#>
  154. </FONT>
  155.  
  156. <P>
  157.  
  158.  
  159.  
  160. <P>
  161.  
  162.  
  163. <DIV class="CENTER"><A ID="492"><tex2html_anchor_mark></A>
  164. <TABLE>
  165. <CAPTION class="BOTTOM"><STRONG><#1714#>Figure<#1714#>:</STRONG>
  166. <#1715#> Test Sample: Lines of various slopes with
  167. <#257#><TT>thinlines</TT><#257#><#1715#></CAPTION>
  168. <TR><TD><tex2html_image_mark>#figure234#</TD></TR>
  169. </TABLE>
  170. </DIV>
  171.  
  172.  
  173. <P>
  174.  
  175.  
  176. <DIV class="CENTER"><A ID="532"><tex2html_anchor_mark></A>
  177. <TABLE>
  178. <CAPTION class="BOTTOM"><STRONG><#1717#>Figure<#1717#>:</STRONG>
  179. <#1718#> <tex2html_image_mark>#tex2html_wrap_inline1719#<#1718#></CAPTION>
  180. <TR><TD><tex2html_image_mark>#figure259#</TD></TR>
  181. </TABLE>
  182. </DIV>
  183.  
  184.  
  185. <P>
  186.  
  187.  
  188. <FONT SIZE="-1"><#292#>picman-fig3<#292#>
  189. </FONT>
  190.  
  191. <P>
  192.  
  193.  
  194. <P>
  195.  
  196.  
  197.  
  198.  
  199. <DIV class="CENTER"><A ID="353"><tex2html_anchor_mark></A>
  200. <TABLE>
  201. <CAPTION class="BOTTOM"><STRONG><#1722#>Figure<#1722#>:</STRONG>
  202. <#1723#>A real-life example of a graph<#1723#></CAPTION>
  203. <TR><TD><tex2html_image_mark>#figure300#</TD></TR>
  204. </TABLE>
  205. </DIV>
  206.  
  207.  
  208. <P>
  209.  
  210.